"""
---------------------------------------------------------------------
- File: lifespan.py
- Date: 2025/11/6
- Author: yangzhide
- Email: xxzjyzd@126.com
- Description: 声明周期管理动态资源，数据库连接
---------------------------------------------------------------------
"""
from fastapi import FastAPI
from app.core.config import settings
from contextlib import asynccontextmanager
from app.db.init_db import init_db
from app.core.logs import logger


@asynccontextmanager
async def lifespan(app: FastAPI):
    """
    生命周期管理器，在程序启动时，连接数据库，在程序结束时，释放数据库连接资源
    """
    logger.info("程序开始启动...")
    if settings.APP_ENV != "production":
        logger.info("当前环境为开发环境，自动创建数据库...")
        await init_db()
        logger.info("数据库创建成功...")
    yield
    logger.info("程序结束...")

